package com.xunfang.portal.service;

import com.xunfang.portal.model.entity.Item;
import com.xunfang.portal.model.entity.Order;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xunfang.portal.model.vo.OrderVo;

import java.util.List;

/**
* @author scott
* @description 针对表【t_order】的数据库操作Service
* @createDate 2025-10-21 10:22:36
*/
public interface OrderService extends IService<Order> {

    /**
     * 创建订单
     *
     * @param userId    用户ID
     * @param addressId 地址ID
     */
    String createOrder(Long userId, Integer addressId);

    /**
     * 查询某个用户：指定状态的订单，如果没有指定状态，则查询所有的订单
     * @param userId 用户id
     */
    List<OrderVo> queryOrder(Long userId, Integer status);

    /**
     * 支付订单
     *
     * @param orderId
     * @return
     */
    String pay(Long orderId);

    /**
     * 更新订单的状态
     *
     * @param orderId 订单ID
     * @param status  订单状态
     */
    void updateOrderStatus(Long orderId, Integer status);


    /**
     * 通过订单项更新库存
     *
     * @param item
     */
    void updateBookStorage(Item item);
}
